MATLAB+JAVA的混合开发

您所在的位置:网站首页 java qt 混合编程 MATLAB+JAVA的混合开发

MATLAB+JAVA的混合开发

2024-07-16 13:45| 来源: 网络整理| 查看: 265

近期项目中需要使用matlab跟java做混合开发。主要记录一下,此次开发遇到的问题点。

环境:使用的matlab版本是   R2018b。

当前状况:MATLAB代码已经编写好,且运行成功。需要打成jar包才可以被java调用。

步骤一:

按照教程安装好matlab后,打开matlab,查看当前matlab依赖的jdk版本号:

找到对应的java版本,安装到本机,并配置对应的环境变量。

然后开始打包:

 点击package后勾选需要保存打包好的文件路径

点击保存后开始打包,                                          打包成功后界面

 打开输出文件夹,会出现4个文件夹

 可以看到最后的jar包名称与上文中输入的一致。这就是我们需要在java中调用的jar。

将该jar包引入到java项目中,榆次同时还需要将MATLAB中的另一个jar也引入java项目,否则调用不成功。在本机的MATLAB阿德安装目录中找到javabuilder.jar一同引入。

至此,MATLAB工程就可以被java程序调用了。

步骤二:

在java项目中引入MATLAB编译好的jar包

 在java项目中编写对应代码调用jar,由于我的MATLAB程序输出的是两个参数,因此需要将两个数据分别获取到 ,然后合并到同一个文件中,保存下来后,与在MATLAB中执行后对比,确认运行成功。

import com.mathworks.toolbox.javabuilder.*; import testhalo.TestHalo; import java.io.BufferedWriter; import java.io.FileWriter; import java.io.IOException; public class halotest { public static void main(String[] args) { MWNumericArray input = null; Object[] result = null; TestHalo test = null; try { input = new MWNumericArray(Double.valueOf(15),MWClassID.DOUBLE); test = new TestHalo(); //这里注意 第一个参数 是MATLAB程序会输出几个返回值 从第二个参数向后 才是真正调用MATLAB的jar的入参 result = test.testhalo(2,2023d,6d,15d,19d,10d,0d,1d,8000d,60d); saveArrayToFile("E:\\1\\2\\1.txt",result); } catch (MWException e) { e.printStackTrace(); } finally { MWArray.disposeArray(input); MWArray.disposeArray(result); test.dispose(); } } // 保存数值数组到文件 private static void saveArrayToFile(String filename, Object[] response) { try { BufferedWriter writer = new BufferedWriter(new FileWriter(filename)); MWNumericArray T = (MWNumericArray) response[0]; // 第一个输出参数 MWNumericArray Halo = (MWNumericArray) response[1]; // 第二个输出参数 int[] haloDimensions = Halo.getDimensions(); int[] TDimensions = T.getDimensions(); if (haloDimensions.length != TDimensions.length || haloDimensions[0] != TDimensions[0]) return; int numRows = haloDimensions[0]; //行数 int haloCols = haloDimensions[1]; //列数 int tCols = TDimensions[1]; for (int i = 1; i


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3